package com.cskaoyan.javase.oop1._7exercise.pvz;

/**
 * 用面向对象思想编写程序,模拟植物大战僵尸
 * 对象: 豌豆射手和铁桶僵尸
 * 类: 植物类和僵尸类
 *
 * 在Java开发中,持有对方对象的引用作为自身成员变量,以便于交互实现功能
 * 是非常常见的操作
 *
 * @since 11:26
 * @author wuguidong@cskaoyan.onaliyun.com
 */
// 测试类
public class Test {
    public static void main(String[] args) {
        // 分别创建植物和僵尸的对象
        Plant p = new Plant("豌豆射手", 100, 200, 1000);
        Zombie z = new Zombie("铁桶僵尸", 100, 3000, 60);
        // 分别给持有的引用赋值
        p.plantZ = z;
        z.zombieP = p;
        System.out.println("Game Start!呜呜呜,僵尸来了,歪比巴布!");
        z.move();
        p.attack();
        z.beAttacked();

        System.out.println("经过长途跋涉,僵尸接近了植物!");
        z.attack();
        p.beAttacked();

        System.out.println("植物牺牲了,小推车也牺牲了,僵尸攻破了你的后花园!");
        z.eat();
        System.out.println("Game Over! GG");
    }
}